Add gdk_region_rect_equal to compare a region with a rect
authorAlexander Larsson <alexl@redhat.com>
Tue, 26 May 2009 18:48:10 +0000 (20:48 +0200)
committerAlexander Larsson <alexl@redhat.com>
Tue, 26 May 2009 18:48:10 +0000 (20:48 +0200)
gdk/gdkregion-generic.c
gdk/gdkregion.h

index 19e03e45c45380d92406c7fb2e5c26d753cf275f..d98dc8822db262a409e57654d2ac8e0db3b20770 100644 (file)
@@ -1581,6 +1581,32 @@ gdk_region_equal (const GdkRegion *region1,
   return TRUE;
 }
 
+/**
+ * gdk_region_rect_equal:
+ * @region: a #GdkRegion
+ * @rectangle: a #GdkRectangle
+ *
+ * Finds out if a regions is the same as a rectangle.
+ *
+ * Returns: %TRUE if @region and @rectangle are equal.
+ *
+ * Since: 2.18
+ */
+gboolean
+gdk_region_rect_equal (const GdkRegion    *region,
+                      const GdkRectangle *rectangle)
+{
+  g_return_val_if_fail (region != NULL, FALSE);
+  g_return_val_if_fail (rectangle != NULL, FALSE);
+
+  if (region->numRects != 1) return FALSE;
+  else if (region->extents.x1 != rectangle->x) return FALSE;
+  else if (region->extents.y1 != rectangle->y) return FALSE;
+  else if (region->extents.x2 != rectangle->x + rectangle->width) return FALSE;
+  else if (region->extents.y2 != rectangle->y + rectangle->height) return FALSE;
+  return TRUE;
+}
+
 /**
  * gdk_region_point_in:
  * @region: a #GdkRegion
index b7381eaf4dccc6b0af07d3996b37087191744c35..415cd24b77c6d00185cfa5d706c4dd2ef692d13e 100644 (file)
@@ -77,6 +77,8 @@ void           gdk_region_get_rectangles  (const GdkRegion    *region,
 gboolean       gdk_region_empty           (const GdkRegion    *region);
 gboolean       gdk_region_equal           (const GdkRegion    *region1,
                                            const GdkRegion    *region2);
+gboolean       gdk_region_rect_equal      (const GdkRegion    *region1,
+                                           const GdkRectangle *rectangle);
 gboolean       gdk_region_point_in        (const GdkRegion    *region,
                                            int                 x,
                                            int                 y);